﻿using Authority.DataTransferObject.MenuAuthority;
using Authority.IServices.Model.Menu;
using HelperFromTheSkeleton.Model.PageModel;

namespace Authority.IServices
{
    /// <summary>
    /// 菜单权限服务
    /// </summary>
    public interface IMenuAuthorityService
    {
        /// <summary>
        /// 新增菜单权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task AddAsync(AddMenuModel model);

        /// <summary>
        /// 修改菜单权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task EditAsync(EditMenuModel model);

        /// <summary>
        /// 删除菜单权限
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(Guid id);

        /// <summary>
        /// 获取菜单权限
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<List<MenuAuthorityDTO>> GetAsync(List<Guid> id);

        /// <summary>
        /// 获取一个层级
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        Task<List<MenuAuthorityListDTO>> GetOneLevelAsync(Guid? parentId);

        /// <summary>
        /// 获取树
        /// </summary>
        /// <returns></returns>
        Task<List<MenuTreeDTO>> GetTreeAsync(Guid subsystemID);

    }
}